A switch fabric in a data communications switch facilitates the transport of data packets received from an ingress port to an egress port for forwarding the packet to a destination. The switch fabric may be implemented as a crossbar switch, cell switch, or shared memory packet switch. One advantage of the shared memory packet switch when compared to other types of switch fabrics is its robustness under high traffic loads. Shared memory packet switches generally provide for lower packet loss and lower latency than other types of switch fabrics.
Shared memory packet switches, however, utilize a single central logic that makes scheduling decisions for all packets destined for all egress ports. As fabric size increases, this also increases the burden on the central logic. Thus, shared memory packet switches often suffer from a lack of scalability beyond a data rate 100 Gbit/sec. In addition, the number of electrical interfaces needed to support the bandwidth for a larger system discourages the larger switch fabric size.
Although crossbar fabrics, cell fabrics, or other switch fabrics implementing a virtual output queue (VOQ) scheduling may be scaled beyond the size of shared memory packet switches, they suffer from lack of robustness and are also susceptible to head of line blockage during high traffic loads. In addition, although switch fabrics implementing VOQ scheduling distribute the scheduling task to various ingress schedulers instead of relying on a single central scheduler, they suffer from the disadvantage that each ingress port must maintain its own set of egress queues for each egress port, magnifying the number of queues that need to be created and maintained.
Accordingly, there is a need for a switch fabric that is easily scalable without compromising its robustness under high traffic loads.